package com.fbinggun.fbinggunutil;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 时间处理常用方法
 */
@Deprecated
public class TiemUtil {
    //获取当前时间戳 毫秒

    /**
     * 获取当前时间戳 毫秒
     * @return
     */
    public static Long date() {
        Calendar cal = Calendar.getInstance();
        Date date = cal.getTime();
        return date.getTime();
    }
    //获取当前时间
    public static String getCurrentTime() throws Exception {
        return stampToTimeMillisecond(date());
    }


    /**
     * 根据时间返回 时间戳
     * @param s 时间字符串
     * @return 单位毫秒
     * @throws Exception
     */
    public static Long dateToStamp(String s) throws Exception {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
        Date date = simpleDateFormat.parse(s);
        long time = date.getTime();
        return time;
    }
    //时间戳转时间 秒

    /**
     * 根据时间戳 (秒) 返回 时间 时间格式：yyyy年MM月dd日
     * @param lt 时间戳 单位秒
     * @return 时间
     * @throws Exception
     */
    public static String stampToTimeSeconds(long lt) throws Exception {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
        Date date = new Date(lt * 1000L);
        String res = simpleDateFormat.format(date);
        return res;
    }
    /**
     * 根据时间戳 (毫秒) 返回 时间 时间格式：yyyy年MM月dd日
     * @param lt 时间戳 单位毫秒
     * @return 时间
     * @throws Exception
     */
    public static String stampToTimeMillisecond(long lt) throws Exception {
        return stampToTimeMillisecond(lt,"yyyy年MM月dd日");
    }
    /**
     * 根据时间戳 (毫秒) 返回 时间
     * @param lt 时间戳 单位毫秒
     * @param format 时间格式
     * @return 时间
     * @throws Exception
     */
    public static String stampToTimeMillisecond(long lt,String format) throws Exception {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
        Date date = new Date(lt);
        String res = simpleDateFormat.format(date);
        return res;
    }

    /**
     * 判断 时间1 是否大于 时间2
     * @param pd 时间1
     * @param dq 时间2
     * @param t false时 结果返回相反
     * @return 时间1>时间2 返回ture
     * @throws ParseException
     */
    //对比时间 时间1是否大于时间2
    public static boolean isTimeLimit(Long pd, Long dq, boolean t) throws ParseException {
        boolean b = pd >= dq;
        if (t) {
            return b;
        } else {
            return !b;
        }
    }

    /**
     * 通过字符串返回 时间戳
     * @param s 字符串
     * @return
     * @throws ParseException
     */
    public static Long getDateTiemString(String s) throws ParseException {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
        if (s.contains("月")) {
            simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
        } else if (s.contains("-")) {
            simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        } else if (s.contains("/")) {
            simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
        } else if (s.contains(".")) {
            simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
        }

        Date date = simpleDateFormat.parse(s);
        long time = date.getTime();
        return time;
    }
}
